﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace ComLib.ComType
{
    /// <summary>
    /// 像素需要检测的选项
    /// </summary>
    public class DetectAssessPolicies
    {
        public DetectAssessPolicies()
        {

        }
        /// <summary>
        /// 文件已损坏
        /// </summary>
        private bool _fileCorrupt = false;
        public bool FileCorrupt
        {
            get { return _fileCorrupt; }
            set { _fileCorrupt = value; }
        }

        /// <summary>
        /// 文件格式不符
        /// </summary>
        private bool _fileFormat = false;
        public bool FileFormat
        {
            get { return _fileFormat; }
            set { _fileFormat = value; }
        }

        /// <summary>
        /// 文件大小不符
        /// </summary>
        private bool _fileSize = false;
        public bool FileSize
        {
            get { return _fileSize; }
            set { _fileSize = value; }
        }

        /// <summary>
        /// 图像高宽不符
        /// </summary>
        private bool _imgWidHei = false;
        public bool ImgWidHei
        {
            get { return _imgWidHei; }
            set { _imgWidHei = value; }
        }

        /// <summary>
        /// 色彩位数不符
        /// </summary>
        private bool _imgBits = false;
        public bool ImgBits
        {
            get { return _imgBits; }
            set { _imgBits = value; }
        }

        /// <summary>
        /// DPI不符
        /// </summary>
        private bool _imgDPI = false;
        public bool ImgDPI
        {
            get { return _imgDPI; }
            set { _imgDPI = value; }
        }

        /// <summary>
        /// 图像损坏类型
        /// </summary>
        private bool _imgCorrupt = false;
        public bool ImgCorrupt
        {
            get { return _imgCorrupt; }
            set { _imgCorrupt = value; }
        }

        /// <summary>
        /// 灰度范围    
        /// </summary>
        private bool _grayrange = false;
        public bool Grayrange
        {
            get { return _grayrange; }
            set { _grayrange = value; }
        }

        /// <summary>
        /// 平均灰度
        /// </summary>
        private bool _averagegray = false;
        public bool Averagegray
        {
            get { return _averagegray; }
            set { _averagegray = value; }
        }

        /// <summary>
        /// 图像噪声
        /// </summary>
        private bool _imgNoise = false;
        public bool ImgNoise
        {
            get { return _imgNoise; }
            set { _imgNoise = value; }
        }

        /// <summary>
        /// 脸数（非单人正脸照）
        /// </summary>
        private bool _hasface = false;
        public bool Hasface
        {
            get { return _hasface; }
            set { _hasface = value; }
        }

        /// <summary>
        /// 剪裁分辨率低
        /// </summary>
        private bool _cropresolution = false;
        public bool Cropresolution
        {
            get { return _cropresolution; }
            set { _cropresolution = value; }
        }

        /// <summary>
        /// 两眼距离不合要求
        /// </summary>
        private bool _eyedistance = false;
        public bool Eyedistance
        {
            get { return _eyedistance; }
            set { _eyedistance = value; }
        }

        /// <summary>
        ///  红眼
        /// </summary>
        private bool _redeye = false;
        public bool Redeye
        {
            get { return _redeye; }
            set { _redeye = value; }
        }

        /// <summary>
        /// 眼睛睁开
        /// </summary>
        private bool _eyesopen = false;
        public bool Eyesopen
        {
            get { return _eyesopen; }
            set { _eyesopen = value; }
        }

        /// <summary>
        /// 背景不均匀
        /// </summary>
        private bool _bkuniform = false;
        public bool Bkuniform
        {
            get { return _bkuniform; }
            set { _bkuniform = value; }
        }

        /// <summary>
        /// 背景过亮
        /// </summary>
        private bool _bklightover = false;
        public bool Bklightover
        {
            get { return _bklightover; }
            set { _bklightover = value; }
        }

        /// <summary>
        /// 背景过暗
        /// </summary>
        private bool _bklightunder = false;
        public bool Bklightunder
        {
            get { return _bklightunder; }
            set { _bklightunder = value; }
        }

        /// <summary>
        /// 背景颜色不合要求
        /// </summary>
        private bool _bkcolor = false;
        public bool Bkcolor
        {
            get { return _bkcolor; }
            set { _bkcolor = value; }
        }

        /// <summary>
        /// 整体（脸部）偏暗
        /// </summary>
        private bool _lowbrightness = false;
        public bool Lowbrightness
        {
            get { return _lowbrightness; }
            set { _lowbrightness = value; }
        }

        /// <summary>
        /// 整体（脸部）偏亮
        /// </summary>
        private bool _highbrightness = false;
        public bool Highbrightness
        {
            get { return _highbrightness; }
            set { _highbrightness = value; }
        }

        /// <summary>
        /// 肤色不正常
        /// </summary>
        private bool _skincolorun = false;
        public bool Skincolorun
        {
            get { return _skincolorun; }
            set { _skincolorun = value; }
        }

        /// <summary>
        /// 脸部模糊（图像模糊）
        /// </summary>
        private bool _faceblur = false;
        public bool Faceblur
        {
            get { return _faceblur; }
            set { _faceblur = value; }
        }

        /// <summary>
        ///  曝光不足
        /// </summary>
        private bool _underexposure = false;
        public bool Underexposure
        {
            get { return _underexposure; }
            set { _underexposure = value; }
        }

        /// <summary>
        /// 曝光过度
        /// </summary>
        private bool _overexposure = false;
        public bool Overexposure
        {
            get { return _overexposure; }
            set { _overexposure = value; }
        }

        /// <summary>
        /// 脸部高光
        /// </summary>
        private bool _hotspots = false;
        public bool Hotspots
        {
            get { return _hotspots; }
            set { _hotspots = value; }
        }

        /// <summary>
        /// 脸部曝光均匀性（光照不均匀）
        /// </summary>
        private bool _lightuniform = false;
        public bool Lightuniform
        {
            get { return _lightuniform; }
            set { _lightuniform = value; }
        }

        /// <summary>
        /// 是否戴眼镜
        /// </summary>
        private bool _wearsglasses = false;
        public bool Wearsglasses
        {
            get { return _wearsglasses; }
            set { _wearsglasses = value; }
        }

        /// <summary>
        /// 眼镜框宽/色深
        /// </summary>
        private bool _glassframe = false;
        public bool Glassframe
        {
            get { return _glassframe; }
            set { _glassframe = value; }
        }

        /// <summary>
        /// /眼镜片颜色太深
        /// </summary>
        private bool _glasscover = false;
        public bool Glasscover
        {
            get { return _glasscover; }
            set { _glasscover = value; }
        }

        /// <summary>
        /// 眼镜反光
        /// </summary>
        private bool _glassflash = false;
        public bool Glassflash
        {
            get { return _glassflash; }
            set { _glassflash = value; }
        }

        /// <summary>
        ///  眼镜框遮挡眼睛
        /// </summary>
        private bool _glasscovereye = false;
        public bool Glasscovereye
        {
            get { return _glasscovereye; }
            set { _glasscovereye = value; }
        }

        /// <summary>
        /// 头发遮住眼睛
        /// </summary>
        private bool _haircovereye = false;
        public bool Haircovereye
        {
            get { return _haircovereye; }
            set { _haircovereye = value; }
        }

        /// <summary>
        /// 表情不自然
        /// </summary>
        private bool _expression = false;
        public bool Expression
        {
            get { return _expression; }
            set { _expression = value; }
        }

        /// <summary>
        /// 正脸（姿态不正）
        /// </summary>
        private bool _facefrontal = false;
        public bool Facefrontal
        {
            get { return _facefrontal; }
            set { _facefrontal = value; }
        }

        /// <summary>
        /// 正眼：眼睛朝前看（目光未视镜头）
        /// </summary>
        private bool _eyesfrontal = false;
        public bool Eyesfrontal
        {
            get { return _eyesfrontal; }
            set { _eyesfrontal = value; }
        }

        /// <summary>
        /// 整体偏色
        /// </summary>
        private bool _colourcast = false;
        public bool Colourcast
        {
            get { return _colourcast; }
            set { _colourcast = value; }
        }

        /// <summary>
        /// 整体发灰
        /// </summary>
        private bool _lowcs = false;
        public bool Lowcs
        {
            get { return _lowcs; }
            set { _lowcs = value; }
        }

        /// <summary>
        /// 服饰与背景色接近
        /// </summary>
        private bool _colorWearUn = false;
        public bool ColorWearUn
        {
            get { return _colorWearUn; }
            set { _colorWearUn = value; }
        }

        /// <summary>
        ///  嘴巴闭合
        /// </summary>
        private bool _mouthclose = false;
        public bool Mouthclose
        {
            get { return _mouthclose; }
            set { _mouthclose = value; }
        }

        /// <summary>
        /// 头整体偏上
        /// </summary>
        private bool _headhigh = false;
        public bool Headhigh
        {
            get { return _headhigh; }
            set { _headhigh = value; }
        }

        /// <summary>
        /// 头整体偏下
        /// </summary>
        private bool _headlow = false;
        public bool Headlow
        {
            get { return _headlow; }
            set { _headlow = value; }
        }

        /// <summary>
        /// 头整体偏左
        /// </summary>
        private bool _headleft = false;
        public bool Headleft
        {
            get { return _headleft; }
            set { _headleft = value; }
        }

        /// <summary>
        /// 头整体偏右
        /// </summary>
        private bool _headright = false;
        public bool Headright
        {
            get { return _headright; }
            set { _headright = value; }
        }

        /// <summary>
        /// 头（/脸）偏大
        /// </summary>
        private bool _largehead = false;
        public bool Largehead
        {
            get { return _largehead; }
            set { _largehead = value; }
        }

        /// <summary>
        /// 头（/脸）偏小
        /// </summary>
        private bool _smallhead = false;
        public bool Smallhead
        {
            get { return _smallhead; }
            set { _smallhead = value; }
        }

        /// <summary>
        ///  眼睛Y坐标
        /// </summary>
        private bool _eyeYCood = false;
        public bool EyeYCood
        {
            get { return _eyeYCood; }
            set { _eyeYCood = value; }
        }

        /// <summary>
        /// 头顶距离
        /// </summary>
        private bool _headTop = false;
        public bool HeadTop
        {
            get { return _headTop; }
            set { _headTop = value; }
        }

        // PS效果检测
        /// <summary>
        /// 磨皮效果
        /// </summary>
        private bool _skinSmoothed = false;
        public bool SkinSmoothed
        {
            get { return _skinSmoothed; }
            set { _skinSmoothed = value; }
        }

        /// <summary>
        /// 过度锐化
        /// </summary>
        private bool _overSharpened = false;
        public bool OverSharpened
        {
            get { return _overSharpened; }
            set { _overSharpened = value; }
        }

        /// <summary>
        /// 肩膀检测,-1右肩高，1左肩高，0正常
        /// </summary>
        private bool _shoulderLine = false;
        public bool ShoulderLine
        {
            get { return _shoulderLine; }
            set { _shoulderLine = value; }
        }    
    }

}
